22045
21147
Stängd. Den här frågan uppfyller inte riktlinjerna för Stack Overflow. För närvarande accepteras inte svar.
Vill du förbättra den här frågan? Uppdatera frågan så att den är på ämnet för Stack Overflow.
Stängt för 4 år sedan.
Förbättra denna fråga
Jag bygger en blank app som behandlar flera textfiler som valts av en användare.
Resultatet är en enorm dataram med miljontals rader och tiotals kolumner.
Jag är nu intresserad av att låta en användare interaktivt filtrera rader, välja kolumner och sammanfatta kolumner (genom att välja från en lista med funktioner som medelvärde, sd, max, min, sum, etc ...). Resultatet skulle vara en mindre dataram som sammanfattar data per användarval - i grund och botten måste jag skapa ett GUI som implementerar en grundläggande funktionalitet i dplyr-biblioteket.
I allmänhet vet jag hur man gör det genom att manuellt skapa ett gäng GUI-element och mata dem till en serverfunktion med ett antal dplyr-kommandon. Eftersom detta verkar vara en ganska standardfunktion (GUI som filtrerar och sammanfattar en dataram), undrar jag om det finns något "från hyllan" innan jag börjar bygga det från grunden . 
Jag vet att du sa att rpivotTable inte var riktigt vad du är ute efter, men jag tror att den kan konfigureras för att göra några av de tunga lyftningarna,
Här är ett exempel (med rpivotTable för manipulation, DT för att visa data.frame, rvest för att analysera innerHTML från DOM, det kan finnas ett bättre dataformat för att skicka tabellobjektet från klientsidan, men detta är ett bevis på konceptet ):
ui.R
bibliotek (glänsande)
bibliotek (DT)
bibliotek (rpivotTable)
FullPage <- fluidPage (
DT :: dataTableOutput ('aSummaryTable'),
rpivotTableOutput ('RESULTAT')
)
Hel sida
server.R:
bibliotek (glänsande)
bibliotek (rpivotTable)
bibliotek (DT)
bibliotek (rvest)
funktion (input, output, session) {
# Gör några provdata
qbdata <- reaktiv ({
expand.grid (LETTERS, 1: 3)
})
# Rengör html och lagra som reaktivt
summarydf <- eventReactive (mata in $ myData, {
mata in $ myData%>%
read_html%>%
html_table (fill = TRUE)%>%
# Visar sig att det finns två tabeller i en vridbord, vi vill ha den andra
. [[2]]
})
# visa df som DT :: datatabell
output $ aSummaryTable <- DT :: renderDataTable ({
datatabell (summarydf (), källnamn = FALSE)
})
# När konfigurationen uppdateras, ring tillbaka med innehållet i tabellen
output $ RESULTAT <- renderRpivotTable ({
rivottabell (
qbdata (),
onRefresh =
htmlwidgets :: JS ("funktion (config) {
Shiny.onInputChange ('myData', document.getElementById ('RESULTAT'). InnerHTML);
} ")
)
})
}
|
Inte svaret du letar efter? Bläddra bland andra frågor taggade r dplyr glänsande eller ställ din egen fråga.